// 1. 加载模块
const express = require('express');
// 2. 创建app对象
const app = express();
// 3. 指定端口，启动服务
app.listen(3006, () => console.log('启动了'))

// 4. 配置 + 写接口
// 配置:身份认证
const jwt = require('express-jwt')
app.use(jwt({
    //jwt方法负责解密token, 获取token中保存的信息(用户id), 赋值给req.user
    //jwt方法 如果发现token错误, 则 next(错误)
    secret: 'adsf2ds', //必须填 生成token 时使用的秘钥  一致即可
    algorithms: ['HS256'] //算法,默认即可
}).unless({// 控制哪些接口不需要认证
    // path: ['/api/reguser', '/api/login']
    path: /^\/api/
}))

//配置:接收application/x-www-from-urlencoded 类型的请求
app.use(express.urlencoded({ extended: true }))

//加载自定义的路由模块,并注册成中间件
let loginRouter = require('./routers/login');
app.use('/api', loginRouter)

let userRouter = require('./routers/user');
app.use('/my/user', userRouter)

//错误处理中间件, 解决token错误
app.use(function (err, req, res, next) {
    if (err.name === 'UnauthorizedError') {
      res.status(401).send({status: 1, message: '身份认证失败!'});
    }
  });